/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package configuraciones;

//import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import org.cip.esymons.general.be.Modulo;

/**
 *
 * @author LizardoR
 */
public class ModuloController {
    private ModuloDelegate delegado;
    private Modulo modulo;
    private List<Modulo> listaModulo;
    private String mensaje;
    private Integer codigoModulo;
    private String descripcion;
    private Integer idModulo;
    private String primeraLetra;
    private String resto;

    /*********************** Constructor de la clase *************************/
    public ModuloController() {
        inicializar();
    }

    /*************************** Sets y Gettters *****************************/
    public Modulo getModulo() {
        return modulo;
    }
    public void setModulo(Modulo modulo) {
        this.modulo = modulo;
    }

    public String getPrimeraLetra() {
        damePrimeraLetra();
        return primeraLetra;
    }

    public void setPrimeraLetra(String primeraLetra) {
        this.primeraLetra = primeraLetra;
    }

    public String getResto() {
        dameResto();
        return resto;
    }

    public void setResto(String resto) {
        this.resto = resto;
    }

    public List<Modulo> getListaModulo() {
        return listaModulo;
    }
    public void setListaModulo(List<Modulo> listaModulo) {
        this.listaModulo = listaModulo;
    }

    public Integer getCodigoModulo() {
       //listar();
       return codigoModulo;
    }
    public void setCodigoModulo(Integer codigoModulo) {
        this.codigoModulo = codigoModulo;
    }

    public ModuloDelegate getDelegado() {
        return delegado;
    }

    public String getDescripcion() {
        return descripcion;
    }
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Integer getIdModulo() {
        return idModulo;
    }
    public void setIdModulo(Integer idModulo) {
        this.idModulo = idModulo;
    }
    
    public String getMensaje() {
        return mensaje;
    }
    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }
    
    /**************************** Metodos ************************************/
    public String inicializar() {
        //codigoModulo = 0;
        idModulo = 1; //colegiatura
        modulo = new Modulo();
        delegado = new ModuloDelegate();
        //listaModulo = new ArrayList<Modulo>();
        //listar();
        return "";
    }

    public void damePrimeraLetra() {
        if (descripcion != null) {
            primeraLetra = descripcion.substring(0, 1).toUpperCase();
        }
    }

    public void dameResto() {
        int cantidad = 0;
        if (descripcion != null) {
            cantidad = descripcion.length();
    //        char [] cad = new char[cantidad-1];
    //        //cad[0] = ' ';
    //        for (int i=1; i<cantidad; i++) {
    //            cad[i-1] += descripcion.charAt(i);
    //        }
            resto = "";
            for (int i=1; i<cantidad; i++) {
                resto += descripcion.charAt(i);
            }
        }

    }

    public String listar() {
        //codigoEvento = cursoSeleccionado.getPreCodigo();
        System.out.print("Codigo Modulo: " + codigoModulo);
        listaModulo = delegado.findAll();
        return "listar";
    }

    public String mostrarColegiatura(){
        idModulo = 1;
        modulo = delegado.find(idModulo);
        //modulo = delegado.find(idModulo);
        descripcion = (modulo != null) ? modulo.getModDescripcion() : "<Ingrese una descripción del módulo...>";
        return "mostrar_modulo";
    }

    public String mostrarTramite(){
        idModulo = 4;
        modulo = delegado.find(idModulo);
        descripcion = (modulo != null) ? modulo.getModDescripcion() : "<Ingrese una descripción del módulo...>";
        return "mostrar_modulo";
    }

    public String mostrarEventos(){
        idModulo = 2;
        modulo = delegado.find(idModulo);
        descripcion = (modulo != null) ? modulo.getModDescripcion() : "<Ingrese una descripción del módulo...>";
        return "mostrar_modulo";
    }

    public String mostrarTesoreria(){
        idModulo = 3;
        modulo = delegado.find(idModulo);
        descripcion = (modulo != null) ? modulo.getModDescripcion() : "<Ingrese una descripción del módulo...>";
        return "mostrar_modulo";
    }

    public String mostrarUtilitarios(){
        idModulo = 5;
        modulo = delegado.find(idModulo);
        descripcion = (modulo != null) ? modulo.getModDescripcion() : "<Ingrese una descripción del módulo...>";
        return "mostrar_modulo";
    }

    public Modulo buscarPorCodigo(Integer codigo){
        return delegado.find(codigo);
    }

    public SelectItem[] getComboModulo(){
        try{
            System.out.println("Ingreso 1");
            SelectItem[] selects = null;
            List<Modulo> listaModulos = delegado.listarModulos();
            selects = new SelectItem[listaModulos.size()];
            int cont = 0;
            for(Modulo moduloX : listaModulos){
                SelectItem item = new SelectItem(moduloX.getModCodigo(), moduloX.getModNombre());
                selects[cont] = item;
                cont++;
            }
            return selects;
        }catch(Exception e){
            System.out.println("Ingreso Error");
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen modulos");
            selects[0] = item;
            return selects;
        }
    }

}
